#include <iostream>
#include <string>
#include <csignal>
#include <cstdlib>

#include "Application.h"
#include "Logger.h"

// 全局应用程序实例
static Application& app = Application::getInstance();

// 信号处理函数
void signalHandler(int signum) {
    LOG_INFO("收到信号: " + std::to_string(signum));
    app.stop();
    exit(signum);
}

// 主函数
int main(int argc, char *argv[]) {
    try {
        // 注册信号处理器
        signal(SIGINT, signalHandler);
        signal(SIGTERM, signalHandler);
        
        // 显示欢迎信息
        std::cout << "=====================================" << std::endl;
        std::cout << "GB28181客户端 - V5摄像头硬编码版启动" << std::endl;
        std::cout << "=====================================" << std::endl;
        
        // 初始化应用程序
        if (!app.initialize()) {
            LOG_ERROR("应用程序初始化失败");
            return 1;
        }
        
        // 运行应用程序
        app.run();
        
        return 0;
    } catch (const std::exception& e) {
        std::cerr << "发生异常: " << e.what() << std::endl;
        return 1;
    }
} 